home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2008 November / PCWNOV08.iso / Software / Freeware / Adobe Media Player 1.1 / adobe_media_player.air / AMP.swf / scripts / mx / managers / BrowserManagerImpl.as < prev    next >
Encoding:
Text File  |  2008-07-17  |  5.1 KB  |  183 lines

  1. package mx.managers
  2. {
  3.    import flash.events.EventDispatcher;
  4.    import flash.external.ExternalInterface;
  5.    import mx.core.ApplicationGlobals;
  6.    import mx.core.mx_internal;
  7.    import mx.events.BrowserChangeEvent;
  8.    
  9.    use namespace mx_internal;
  10.    
  11.    public class BrowserManagerImpl extends EventDispatcher implements IBrowserManager
  12.    {
  13.       private static var instance:IBrowserManager;
  14.       
  15.       mx_internal static const VERSION:String = "3.0.0.0";
  16.       
  17.       private var _defaultFragment:String = "";
  18.       
  19.       private var _title:String;
  20.       
  21.       private var browserMode:Boolean = true;
  22.       
  23.       private var _fragment:String;
  24.       
  25.       private var _url:String;
  26.       
  27.       private var _base:String;
  28.       
  29.       public function BrowserManagerImpl()
  30.       {
  31.          super();
  32.          try
  33.          {
  34.             ExternalInterface.addCallback("browserURLChange",browserURLChangeBrowser);
  35.             ExternalInterface.addCallback("debugTrace",debugTrace);
  36.          }
  37.          catch(e:Error)
  38.          {
  39.             browserMode = false;
  40.          }
  41.       }
  42.       
  43.       public static function getInstance() : IBrowserManager
  44.       {
  45.          if(!instance)
  46.          {
  47.             instance = new BrowserManagerImpl();
  48.          }
  49.          return instance;
  50.       }
  51.       
  52.       private function setup(param1:String, param2:String) : void
  53.       {
  54.          if(!browserMode)
  55.          {
  56.             return;
  57.          }
  58.          _defaultFragment = param1;
  59.          _url = ExternalInterface.call("BrowserHistory.getURL");
  60.          if(!_url)
  61.          {
  62.             browserMode = false;
  63.             return;
  64.          }
  65.          var _loc3_:int = int(_url.indexOf("#"));
  66.          if(_loc3_ == -1 || _loc3_ == _url.length - 1)
  67.          {
  68.             _base = _url;
  69.             _fragment = "";
  70.             _title = param2;
  71.             ExternalInterface.call("BrowserHistory.setDefaultURL",param1);
  72.             setTitle(param2);
  73.          }
  74.          else
  75.          {
  76.             _base = _url.substring(0,_loc3_);
  77.             _fragment = _url.substring(_loc3_ + 1);
  78.             _title = ExternalInterface.call("BrowserHistory.getTitle");
  79.             ExternalInterface.call("BrowserHistory.setDefaultURL",_fragment);
  80.             if(_fragment != _defaultFragment)
  81.             {
  82.                browserURLChange(_fragment,true);
  83.             }
  84.          }
  85.       }
  86.       
  87.       private function browserURLChange(param1:String, param2:Boolean = false) : void
  88.       {
  89.          var _loc3_:String = null;
  90.          if(decodeURI(_fragment) != decodeURI(param1) || param2)
  91.          {
  92.             _fragment = param1;
  93.             _loc3_ = url;
  94.             _url = _base + "#" + param1;
  95.             dispatchEvent(new BrowserChangeEvent(BrowserChangeEvent.BROWSER_URL_CHANGE,false,false,url,_loc3_));
  96.             dispatchEvent(new BrowserChangeEvent(BrowserChangeEvent.URL_CHANGE,false,false,url,_loc3_));
  97.          }
  98.       }
  99.       
  100.       [Bindable("urlChange")]
  101.       public function get base() : String
  102.       {
  103.          return _base;
  104.       }
  105.       
  106.       public function setFragment(param1:String) : void
  107.       {
  108.          if(!browserMode)
  109.          {
  110.             return;
  111.          }
  112.          var _loc2_:String = _url;
  113.          var _loc3_:String = _fragment;
  114.          _url = base + "#" + param1;
  115.          _fragment = param1;
  116.          if(dispatchEvent(new BrowserChangeEvent(BrowserChangeEvent.APPLICATION_URL_CHANGE,false,true,_url,_loc2_)))
  117.          {
  118.             ExternalInterface.call("BrowserHistory.setBrowserURL",param1,ExternalInterface.objectID);
  119.             dispatchEvent(new BrowserChangeEvent(BrowserChangeEvent.URL_CHANGE,false,false,_url,_loc2_));
  120.          }
  121.          else
  122.          {
  123.             _fragment = _loc3_;
  124.             _url = _loc2_;
  125.          }
  126.       }
  127.       
  128.       private function debugTrace(param1:String) : void
  129.       {
  130.          trace(param1);
  131.       }
  132.       
  133.       [Bindable("urlChange")]
  134.       public function get fragment() : String
  135.       {
  136.          if(Boolean(_fragment) && Boolean(_fragment.length))
  137.          {
  138.             return _fragment;
  139.          }
  140.          return _defaultFragment;
  141.       }
  142.       
  143.       [Bindable("urlChange")]
  144.       public function get title() : String
  145.       {
  146.          return _title;
  147.       }
  148.       
  149.       public function setTitle(param1:String) : void
  150.       {
  151.          if(!browserMode)
  152.          {
  153.             return;
  154.          }
  155.          ExternalInterface.call("BrowserHistory.setTitle",param1);
  156.          _title = ExternalInterface.call("BrowserHistory.getTitle");
  157.       }
  158.       
  159.       public function init(param1:String = "", param2:String = "") : void
  160.       {
  161.          ApplicationGlobals.application.historyManagementEnabled = false;
  162.          setup(param1,param2);
  163.       }
  164.       
  165.       private function browserURLChangeBrowser(param1:String) : void
  166.       {
  167.          browserURLChange(param1,false);
  168.       }
  169.       
  170.       public function initForHistoryManager() : void
  171.       {
  172.          setup("","");
  173.       }
  174.       
  175.       [Bindable("urlChange")]
  176.       public function get url() : String
  177.       {
  178.          return _url;
  179.       }
  180.    }
  181. }
  182.  
  183.